<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html><head> 
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>个别显示表单字段 (web.py)</title> 
  <link rel="stylesheet" type="text/css" href="/static/webpy-new.css"/> 
  <link rel="SHORTCUT ICON" href="/static/favicon.ico"/> 
</head><body> 
 
        <div id="header"><table class="header"><tr>
                <td class="logo"><a href="/" title="Home"><img src="/static/webpy.gif" alt="" /></a></td> 
<td class="blurb">&ldquo;Think about the ideal way to write a web app.<br />Write the code to make it happen.&rdquo; [<a href="/philosophy">more...</a>]</td> </tr>
</table>
        </div> 
        <div id="location"> 
                <a href="/">home</a> &gt; 个别显示表单字段
        </div> 
<div id="container"> 
<div id="sidebar">
<strong>get started:</strong>
<ul class="body">
  <li><a href="/install">install</a></li>
  <li><a href="/docs/0.3/tutorial">tutorial</a></li>
</ul>
<strong>learn more:</strong>
<ul class="body">
<li><a href="/docs/0.3/api">api reference</a></li>
<li><a href="/cookbook/">cookbook</a></li>
<li><a href="/src/">code examples</a></li>
</ul>

<strong>dive in:</strong>
<ul class="body"> 
<li><a href="https://github.com/webpy/webpy">source code</a></li>
<li><a href="http://groups.google.com/group/webpy/">mailing list</a></li>
<li><a href="https://github.com/webpy/webpy/issues">issue tracker</a></li>
</ul>
</div>

<div id="main"> 
<div id="content" class="body"> 
<h1>个别显示表单字段</h1>

<h3>问题：</h3>

<p>怎样在模板中个别显示表单字段？</p>

<h3>解决：</h3>

<p>你可以使用'render()'方法在你的模板中显示部分的表单字段。</p>

<p>假设你想创建一个名字/姓氏表单。很简单，只有两个字段，不需要验证，只是为了测试目的。</p>

<pre><code>from web import form
simple_form = form.Form(
    form.Textbox('name', description='Name'),
    form.Textbox('surname', description='Surname'),
)
</code></pre>

<p>通常你可以使用<code>simple_form.render（）</code>或<code>simple_form.render_css（）</code>。
但如你果你想一个一个的显示表单的字段，或者你怎样才能对模板中的表单显示拥有更多的控制权限？如果是这样，你可以对你的个别字段使用<code>render()</code>方法。</p>

<p>我们定义了两个字段名称为<code>name</code>和<code>surname</code>。这些名称将自动成为<code>simple_form</code>对象的属性。</p>

<pre><code>&gt;&gt;&gt; simple_form.name.render()
'&lt;input type="text" name="name" id="name" /&gt;'
&gt;&gt;&gt; simple_form.surname.render()
'&lt;input type="text" name="surname" id="surname" /&gt;' 
</code></pre>

<p>你同样可以通过类似的方法显示个别的描述：</p>

<pre><code>&gt;&gt;&gt; simple_form.surname.description
'Surname'
</code></pre>

<p>如果你有一个小模板片段（局部模板），你想统一的使用你所定义的所有表单字段？你可以使用表单对象的<code>inputs</code>属性迭代每个字段。下面是一个示例：</p>

<pre><code>&gt;&gt;&gt; for input in simple_form.inputs:
...     print input.description
...     print input.render()
... 
Name
&lt;input type="text" name="name" id="name" /&gt;
Surname
&lt;input type="text" name="surname" id="surname" /&gt;
</code></pre>

<div style="clear: both;"></div> 
 
</div> 
 
</div> 
</div>
        <div id="footer"> 
    <p>started by <a style="color: gray;" href="http://www.aaronsw.com/">Aaron Swartz</a> (<a style="color: black;" href="mailto:webpy@aaronsw.com">webpy@aaronsw.com</a>)</p>

<p><a href="https://github.com/webpy/webpy.github.com/blob/master/cookbook/form_fields.zh-cn.md">fork this page on GitHub</a></p>
</div> 
 
</body> 
</html> 
